package cn.felord.app.util;

import cn.felord.app.enumeration.Enumeratable;
import cn.hutool.core.map.MapUtil;

import java.util.Map;

/**
 * The type Enum tool.
 * @author dax
 */
public final class EnumTool {


    private EnumTool() {
    }

    /**
     * Enum to map map.
     *
     * @param clazz the clazz
     * @return the map
     */
    public static Map<Object, String> enumToMap(Class<? extends Enum<?>> clazz) {
        final Enum<?>[] enums = clazz.getEnumConstants();
        if (null == enums) {
            return null;
        }
        final Map<Object, String> map = MapUtil.newHashMap(true);
        for (Enum<?> e : enums) {
            Enumeratable enumeratable = (Enumeratable) e;
            map.put(enumeratable.value(), enumeratable.description());
        }
        return map;
    }

}
